package cn.duhengkui.national.valuelist.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import cn.duhengkui.national.valuelist.core.entity.BaseQueryObject;



/**   
 * <table border="1">
 *	<tr><td>包名称：</td><td>cn.duhengkui.national.valuelist.annotation</td></tr>
 *	<tr><td>类名称：</td><td>Query</td></tr>
 *	<tr><td>类描述：</td><td>DAO中的SQL语句标记</td></tr>
 *	<tr><td>创建人：</td><td>杜恒奎</td></tr>
 *  <tr><td>创建时间：</td><td>2018年6月7日/下午2:45:48</td></tr> 
 *  <tr><td>版本：</td><td>1.0.0</td></tr>
 * </table>   
 *     
 */
@Retention(RetentionPolicy.RUNTIME)
@Target( { ElementType.METHOD }) 
public @interface Query {

	/**
	 * SQL语句类型，分别为：分页查询、查询、修改、删除、单一对象查询，返回map的查询，批量操作。默认为：查询
	 */
	public enum Type {PAGE, LIST, MODIFY, REMOVE, SINGLE,FREE_LIST,BANTCH};
	
	/**
	 * SQL语句类型，默认为查询类型
	 */
	Type type() default Type.LIST;
	
	
	/**
	 * SQL语句，如果是命名式查询，这里写名称
	 */
	String sql() default "";
	
	/**
	 * QO方式返回类型
	 */
	Class<? extends BaseQueryObject> returnQueryObj() default BaseQueryObject.class;
	
	
	
}